# demo01_shutil.py
# 导入模块
import shutil
"""
# 1.拷贝文件(不包含权限)
# shutil.copyfileobj(源文件对象, 目标文件对象)
# 拷贝/usr/bin/ls 到/opt/ls
fr = open('/usr/bin/ls', mode='rb')
fw = open('/opt/ls', mode='wb')
shutil.copyfileobj(fr, fw)
fr.close()
fw.close()

# 2.拷贝文件(不包含权限)
# shutil.copyfile(源文件路径, 目标文件路径)
shutil.copyfile('/usr/bin/ls', '/opt/ls2')

# 3.拷贝文件(包含权限)
# shutil.copy(源文件路径, 目标文件路径)
# shutil.copy('/usr/bin/ls', '/opt/ls3')
# 拷贝文件的目标位置，可以只写目录
# shutil.copy('/usr/bin/ls', '/opt/mytest')
# 不能拷贝目录

# 4.移动文件
# shutil.move(源文件路径, 目标文件路径)
# shutil.move('/opt/ls2', '/opt/mytest')
# shutil.move('/opt/ls3', '/opt/mytest/ls5')
# 移动目录，会递归移动目录中所有文件
# shutil.move('/opt/hello', '/opt/mytest')

# 5.拷贝目录
# 递归拷贝目录中所有的文件
# shutil.copytree(源目录路径, 目标目录路径)
shutil.copytree('/opt/root', '/opt/mytest/root')

# 6.删除目录
# 递归删除目录中所有文件
# shutil.rmtree(目录路径)
shutil.rmtree('/opt/root')

# 7.拷贝权限
# 所有者和所有组不受影响
# shutil.copymode(源文件路径, 目标文件路径)
shutil.copymode('/usr/bin/ls', '/opt/mytest/ls2')
"""
# 8.改变所有者和所有组
# shutil.chown(文件路径, user=所有者, group=所有组)
shutil.chown('/opt/mytest/ls2', user='user10', group='user10')





